﻿<?xml version="1.0" encoding="utf-8" ?>
<Recipe Name="CreateDesignTimeNode" Bound="false"  xmlns="http://schemas.microsoft.com/pag/gax-core" xmlns:xi="http://www.w3.org/2001/XInclude">
  <DocumentationLinks>
    <Link Kind="Documentation" Caption="How To: Create a Design-Time Provider Node" Url="ms-help://MS.VSCC.v80/MS.VSIPCC.v80/ms.EntLib.2007Apr/EnterpriseLibrary/html/10-150-How_To_Create_a_DesignTime_Provider_Node.htm" />
  </DocumentationLinks>
  <xi:include href="../Common/CommonTypeAliases.xml"
      xpointer="xmlns(gax=http://schemas.microsoft.com/pag/gax-core) xpointer(/gax:Types)" />
  <Caption>Create Design-Time Provider Node</Caption>
  <Description>Creates a design-time node for an existing runtime provider type in a custom application block.</Description>
	<xi:include href="../Common/CommonCreateDesignTimeNoder.xml"
      xpointer="xmlns(gax=http://schemas.microsoft.com/pag/gax-core) xpointer(/gax:Recipe/gax:HostData)" />
	<Arguments>
		<xi:include href="../Common/CommonCreateDesignTimeNoder.xml"
				xpointer="xmlns(gax=http://schemas.microsoft.com/pag/gax-core) xpointer(/gax:Recipe/gax:Arguments/gax:Argument)" />
		<Argument Name="RootNodeProjectItem" Type="System.Type">
			<ValueProvider Type="Microsoft.Practices.EnterpriseLibrary.BlockFactory.ValueProviders.Nodes.NodeBaseClassValueProvider, Microsoft.Practices.EnterpriseLibrary.BlockFactory"
											ConfigurationType="RuntimeConfigurationItem"
											Namespace="Namespace"
											>
				<MonitorArgument Name="RuntimeConfigurationItem" />
			</ValueProvider>
		</Argument>
		<Argument Name="BaseNodeName" >
			<ValueProvider Type="ArgumentExpressionProvider" Expression="$RootNodeProjectItem.FullName$">
				<MonitorArgument Name="RootNodeProjectItem" />
			</ValueProvider>
		</Argument>
		<Argument Name="ParentUINodeProjectItem" Type="System.Type">
			<ValueProvider Type="TypeValueProvider" TypeFullNameExpression="$Namespace$.ApplicationBlockSettingsNode" UseProjectItemWrapper="true" />
		</Argument>
		<Argument Name="ParentUINodeName" >
			<ValueProvider Type="ArgumentExpressionProvider" Expression="$ParentUINodeProjectItem.FullName$">
				<MonitorArgument Name="ParentUINodeProjectItem" />
			</ValueProvider>
		</Argument>
		<Argument Name="Cardinality" Type="Microsoft.Practices.EnterpriseLibrary.BlockFactory.Editors.Data.Cardinality, Microsoft.Practices.EnterpriseLibrary.BlockFactory">
			<ValueProvider  Type="EnumValueProvider" 
											EnumType="Microsoft.Practices.EnterpriseLibrary.BlockFactory.Editors.Data.Cardinality, Microsoft.Practices.EnterpriseLibrary.BlockFactory"
											EnumValue="Multiple">
			</ValueProvider>
		</Argument>
		<Argument Name="AbstractNode" Type="System.Boolean">
			<ValueProvider Type="Evaluator" Expression="false" />
		</Argument>
	</Arguments>
  <GatheringServiceData>
    <Wizard xmlns="http://schemas.microsoft.com/pag/gax-wizards" SchemaVersion="1.0">
      <Pages>
        <Page>
          <Title>Design-Time Node properties</Title>
          <LinkTitle>Design-Time Node properties</LinkTitle>
					<Help></Help>
					<Fields>
            <Field Label="Node Name" ValueName="NodeName" >
              <Tooltip>Specifies the name for the node</Tooltip>
            </Field>
						<Field ValueName="RuntimeConfigurationItem" Label="Runtime Configuration Type">
							<Tooltip>Specifies the configuration object for the design time</Tooltip>
							<Editor Type="Microsoft.Practices.EnterpriseLibrary.BlockFactory.Editors.TypeBrowser, Microsoft.Practices.EnterpriseLibrary.BlockFactory" 
											Filter="Microsoft.Practices.EnterpriseLibrary.BlockFactory.Editors.ConfigurationTypeFilter, Microsoft.Practices.EnterpriseLibrary.BlockFactory" />
						</Field>
						<Field ValueName="RootNodeProjectItem" Label="Base Design Node">
              <Tooltip>Specifies the base design node from which the new node will inherit it</Tooltip>
							<Editor Type="Microsoft.Practices.EnterpriseLibrary.BlockFactory.Editors.TypeBrowser, Microsoft.Practices.EnterpriseLibrary.BlockFactory" 
											Filter="Microsoft.Practices.EnterpriseLibrary.BlockFactory.Editors.NodeTypeFilter, Microsoft.Practices.EnterpriseLibrary.BlockFactory" 
										  UseProjectItemWrapper="true"
											/>
						</Field>
            <Field ValueName="ParentUINodeProjectItem" Label="Parent UI Node">
              <Tooltip>Specifies the parent node for the new node in the UI</Tooltip>
							<Editor Type="Microsoft.Practices.EnterpriseLibrary.BlockFactory.Editors.TypeBrowser, Microsoft.Practices.EnterpriseLibrary.BlockFactory" 
											Filter="Microsoft.Practices.EnterpriseLibrary.BlockFactory.Editors.NodeTypeFilter, Microsoft.Practices.EnterpriseLibrary.BlockFactory" 
										  UseProjectItemWrapper="true"
											/>
						</Field>
            <Field Label="Cardinality" ValueName="Cardinality">
              <Tooltip>Specifies if the parent will have one or many instances of these new node.</Tooltip>
            </Field>
          </Fields>
        </Page>
        <Page Type="Microsoft.Practices.EnterpriseLibrary.BlockFactory.CustomPages.DesignTimePropertiesPage, Microsoft.Practices.EnterpriseLibrary.BlockFactory" Width="800" Height="500">
          <Title>Design-Time Properties</Title>
          <LinkTitle>Design-Time Properties</LinkTitle>
					<Help></Help>
				</Page>
      </Pages>
    </Wizard>
  </GatheringServiceData>
  <Actions>
    <Action Name="CreateDesignTimeNodeInfo" Type="Microsoft.Practices.EnterpriseLibrary.BlockFactory.Actions.EnterpriseLibrary.CreateDesignTimeNodeInfo, Microsoft.Practices.EnterpriseLibrary.BlockFactory"
             >
      <Input Name="DesignTimeProperties" RecipeArgument="PropertiesInfo"/>
      <Input Name="NodeName" RecipeArgument="NodeName"/>
      <Input Name="RuntimeConfigurationType" RecipeArgument="RuntimeConfigurationItem"/>
      <Input Name="Namespace" RecipeArgument="Namespace"/>
      <Input Name="BaseNodeName" RecipeArgument="BaseNodeName"/>
      <Input Name="ParentUINodeName" RecipeArgument="ParentUINodeName"/>
      <Input Name="Cardinality" RecipeArgument="Cardinality"/>
      <Input Name="AbstractNode" RecipeArgument="AbstractNode"/>
      <Output Name="DesignTimeNodeInfo"/>
    </Action>
		<xi:include href="../Common/CommonCreateDesignTimeNoder.xml"
						xpointer="xmlns(gax=http://schemas.microsoft.com/pag/gax-core) xpointer(/gax:Recipe/gax:Actions/gax:Action)" />
  </Actions>
</Recipe>
